Categorization of forms to aid in form search

ABSTRACT

Systems and methods disclosed herein associate forms with categories based on form features for non-text field characteristics or field-specific text characteristics of the forms. One embodiment provides a method for facilitating searching for a form by associating forms with categories based on form features. The method involves automatically associating, by a processor of a computing device, forms with respective categories based on form features for non-text field characteristics or field-specific text characteristics of the forms and storing the forms and the respective categories associated with the forms at an electronic form search server. Search results are provided from the electronic form search server based on input identifying a search category and a form is identified as a search result based on the form being associated with the search category.

TECHNICAL FIELD

This disclosure relates generally to computer-implemented methods andsystems and more particularly relates to improving the efficiency andeffectiveness of computing systems used in searching for and usingforms.

BACKGROUND

Web search engines provide search tools for entering text strings tosearch for documents on the Internet. Such text-based search tools arenot well suited for finding forms for various reasons. The difficulty insearching for forms is partly due to the fact that forms related to manydifferent topics can have similarities and a user searching for aparticular form must thus review many potential results from thesedifferent topics. For example, forms related to employment, medicine,and athletic activities all include text such as “name,” “address,”“phone,” “registration,” “medicine,” “physician,” etc. Searching for aparticular form can thus be time consuming and burdensome for a user.The user may be required to try multiple search text strings and/orsearch through many results to find the particular form of interest.

Existing document classifications techniques do not accurately classifydocuments to facilitate searching for forms by topic. This is becausesuch techniques typically rely on only the words in the document. Onesuch technique uses automatic text classification using supervisedlearning in which pre-defined category labels are assigned to documentsbased on the likelihood suggested by a training set of labeleddocuments. Words in the documents are considered features of thedocuments and these features are used to categorize the documents.However, this technique does not adequately categorize forms becauseforms in multiple categories usually share a large number of commonwords and thus common features. Words alone are a poor criterion forcategorizing forms.

SUMMARY

Systems and methods disclosed herein associate forms with categoriesbased on form features for non-text field characteristics orfield-specific text characteristics of the forms. One embodimentprovides a method for facilitating searching for a form by associatingforms with categories based on form features for non-text fieldcharacteristics or field-specific text characteristics of the forms. Themethod involves automatically associating, by a processor of a computingdevice, forms with respective categories based on form features fornon-text field characteristics or field-specific text characteristics ofthe forms and storing the forms and the respective categories associatedwith the forms at an electronic form search server. Search results areprovided from the electronic form search server based on inputidentifying a search category. This involves identifying a form as asearch result based on the form being associated with the searchcategory.

Another embodiment provides a method for facilitating searching for aform by associating forms with categories based on form features. Themethod involves creating a training model using form features fornon-text field characteristics or field-specific text characteristics offorms in a collection of forms. Additional forms, i.e., ones not alreadycategorized, are then automatically associated with respectivecategories based on the training model and the form features of thoseadditional forms. The forms and respective categories are stored at anelectronic form search server and search results are provided based onthe categories of the forms.

These illustrative embodiments and features are mentioned not to limitor define the disclosure, but to provide examples to aid understandingthereof. Additional embodiments are discussed in the DetailedDescription, and further description is provided there.

BRIEF DESCRIPTION OF THE FIGURES

These and other features, embodiments, and advantages of the presentdisclosure are better understood when the following Detailed Descriptionis read with reference to the accompanying drawings.

FIG. 1 is a block diagram depicting an example of a system for usingform features for non-text field characteristics or field-specific textcharacteristics to provide form searching and categorization servicesusing an electronic form search and categorization server.

FIG. 2 is a block diagram illustrating exemplary modules forimplementing functions in electronic form categorization and searchserver FIG. 1.

FIG. 3 is a flow chart of an exemplary method for facilitating searchingfor a form by associating forms with categories based on form features.

FIG. 4 is a flow chart of an exemplary method for facilitating searchingfor a form by associating forms with categories using a training model.

FIG. 5 illustrates flow charts illustrating an exemplary technique forassociating a form with a category.

FIG. 6 illustrates a flow chart of an exemplary form categorizationprocess.

FIG. 7 is a block diagram depicting example hardware implementations forthe components described in FIG. 1.

DETAILED DESCRIPTION

As described above, searching for forms can be a time consuming andfrustrating process due to the fact that forms related to many differenttopics can have similarities and a user searching for a particular formmust thus review many potential results from these different topics. Theinvention automatically classifies forms into categories using formfeatures for non-text field characteristics (e.g., field spacing) orfield-specific text characteristics (e.g., that a form has a field withfield label text “Full Legal Name”) as an alternative to, or in additionto, using the words in the form. Using form features for non-text fieldcharacteristics or field-specific text characteristics in categorizingforms greatly improves the accuracy of the categorization over usingwords alone. The accurately-categorized forms can then be more easilyand quickly searched using category-specific search criteria in additionto or, as an alternative to, keyword based search criteria. For example,a user can search a database of categorized forms for search resultsthat only include forms in an “IRS” category. Other exemplary categoriesinclude, but are not limited to medical/health, school (primary, highschool, university), hotel reservation/rental, and registration.

Automatic form classification uses a machine learning algorithm in oneembodiment. A training set of a collection of user forms is used tocreate a training model and each form is represented in terms of afeature vector for categorization using the training model. The featurevectors for the forms are generated with features based on non-textfield characteristics (e.g., the number of fields, the types of fields,the locations of fields, etc.) or field-specific text characteristics(e.g., the field label text, font, or orientation associated with aparticular field, etc.) in addition to, or as an alternative to,features based on plain document text. In one embodiment, the featureset includes one or more of these form specific features in addition totext-based features. Once the training model is created it is used tocategorize uncategorized forms. The system identifies features of a newuncategorized form and then uses the training model to determine thatthe form should be categorized, for example, in an “Medical” formcategory. Thus the training model receives as input features of a formand identifies, based on the features, an appropriate category orcategories. In developing the training model, the system identifiesfeatures (closely spaced fields, more than 20 check box fields, etc.) informs already identified as medical forms. The new form, because it alsohas some of these same features, is classified based on the trainingmodel in the medical form category.

Automatic and accurate category classification of forms allows users tobrowse and search for forms using category labels, as well as to quicklynarrow down what would otherwise be a comprehensive and therefore slowersearch. More efficient and effective ways to search for and use formsare provided by using non-text field characteristics or field-specifictext characteristics instead of (or in addition to) text-based searchcriteria to categorize forms.

In addition to using categories to represent topic, categories canrepresent complexity. In one example, forms are classified based oncomplexity (e.g., simple, medium complexity, and very complex) based onvarious factors such as the number of segments. Complexity-typecategories can be used alternatively or additionally to topic-basedcategories for facilitate searching for forms, among other uses.

These illustrative examples are given to introduce the reader to thegeneral subject matter discussed here and are not intended to limit thescope of the disclosed concepts. The following sections describe variousadditional aspects and examples with reference to the drawings in whichlike numerals indicate like elements, and directional descriptions areused to describe the illustrative examples but, like the illustrativeexamples, should not be used to limit the present disclosure.

As used herein, the phrase “form” refers to a paper or electronicdocument that is structured for completion by someone filling out thedocument with information that is expected to be put at specific placeson the document. Typically, a form includes a template of fields andadditional information added by one or more persons completing the form.A form will generally provide a way for the persons entering informationto enter information in a consistent way so that a receiver of multipleinstances of the completed form can read or extract information atparticular locations on the form and understand, based on the location,the information. Similarly, the use of fields at particular locations onforms facilitates the automatic interpretation of information enteredonto the forms. A form may, for example, have a name field and arecipient or analysis application may understand based on the locationof the text added to the form by a person completing the form that theadded text is the name of the person. The template of a form can specifyfields and field characteristics.

As used herein, the phrase “field” refers to a location in a form or aportion of a form at which one or more items of information are enteredwhen the form is completed. Text boxes, Boolean graphics such ascheckboxes, and signatures are examples of fields. A field has one ormore field characteristics. Fields can be defined explicitly andidentified expressly, for example, using metadata in the form. Fieldsthat are not defined can be inferred, for example, using a recognitionalgorithm that uses appearance of certain graphical objects (lines,rectangles, circle, radio buttons, checkboxes, etc.) to identifylocations as candidate fields where information is to be entered whenthe form is completed.

As used herein the phrase “field characteristic” refers to aspects of afield that identify where the field is located, what information thefield should contain, what type of data should be input into the field,etc. Examples of field characteristics include, but are not limited to,field location, field boundary, field label, field input type, fieldinformation type, etc. A field boundary is an invisible or visualrepresentation of the bounds of the field. A field input type defineswhat type of user input changes the information entered into the field(e.g., text entry, drop down choices, check box, radio button, Booleaninput, image, etc.). A field information type identifies the subjectmatter of the field (e.g., “first name” field, “address” field, “VIN”field, etc.). The characteristics of a field may be manually,semi-automatically, or automatically detected on a form. Characteristicsof each field may be stored as metadata as part of a form and/orseparate from a form.

As used herein the phrase “non-text field characteristics” of a formrefers to non-textual aspects of one or more fields including, but notlimited to, the number and types of fields in the form, the locations offields, the boundary dimensions of fields, the information types offields, the font size and type (e.g., italic, bold, underline, etc.) oflabels and field text, the distributions of field labels, the fielddecorations, the field input types, the spacing or separator typebetween a label and a field, the separator lines and whitespace betweenconceptual sections, etc.

As used herein the phrase “field-specific text characteristic” of a formrefers to a characteristic of a form having a field that specifies aparticular label text, hint text, text font, text spacing, or textorientation. An example field-specific text characteristic is that aform has a field with field label text “Full Legal Name.” Thefield-specific text characteristic is that the form has a field that hasa property (i.e., its label text) having a particular value. The text ofthe label without the association to the field is not a field-specifictext characteristic. Thus, raw text appearing in a form that is notassociated with a field is not a field-specific text characteristic.Field-specific text characteristics can be identified directly orinferred. In cases of structured forms, field-specific textcharacteristics can be identified using metadata that specifies the hintshown to users or the name given to the field in a form that defines theform's structure. In cases of unstructured forms in which form fieldrecognition is employed, field-specific text characteristics can beinferred, for example, by identifying label text associated with eachfield candidate.

As used herein the term “category” refers to a general class of ideas,terms, or things that provides a division within a collection of forms.A form is determined to be within or outside of a given category. Forexample, given category A and category B, in a collection of forms, someof the forms can be in neither category, some forms can be in bothcategories, some forms can only be in category A, and some forms canonly be in category B. In one embodiment, a collection of forms iscategorized such that each form is categorized into at most one form. Inanother embodiment, a collection of forms is categorized such that eachform can be in any number of categories. Categories can relate tosubject matters, e.g., IRS forms, athletic activity forms, medicalforms, employment forms, etc. Categories, however, do not need to relateto specific subject matters. In one embodiment, both categories relatedto subject matters and categories not related to subject matters areused together.

Referring now to the drawings, FIG. 1 is a block diagram depicting anexample of a system for using form features for non-text fieldcharacteristics or field-specific text characteristics to provide formsearching and recommendation services using an electronic formcategorization and search server 102. Individuals 112 a-c use clientdevices 110 a-c to access the electronic form search service featuresthrough network 115. In one example, client device 110 a accesseselectronic form categorization and search server 102 and receives ahyper-text-markup-language (HTML) page or other web page file(s). Asearch interface is displayed in a web browser on client device 110 a.In this example, the individual 112 a enters a category and/or othersearch criteria into the search interface and submits a request that issent from client device 110 a to electronic form categorization andsearch server 102. The electronic form categorization and search server102 processes the specified category and other search criteria to searcha repository 104 for matching forms. Forms are identified as searchresults and the search results are provided from the electronic formcategorization and search server 102 to the client device 110 a, wherethey are displayed in the user interface for selection and use byindividual 112 a.

The repository or repositories that are searched can be on theelectronic form categorization and search server 102, such as in formrepository 104. Additionally or alternatively, electronic formcategorization and search server 102 may search a remote networklocation, for example, using network 115 to access form repositories106, 108 located on separate servers and/or using network 115 to accessa form repository located on the client devices 110 a-c themselves. Thesearch interface can receive input identifying which of a plurality ofrepositories should be searched in a particular search. Forms stored inthe repository or repositories can be indexed in a database using thefield characteristics of the forms.

Form processing, categorization, and search features can additionally oralternatively be provided locally on the client device 110 a. Forexample, client device 110 a, as illustrated, maintains its own localform search, categorization feature, and repository 114. Local formsearch, categorization feature, and repository 114 in this examplecomprises a standalone application providing user interface, formprocessing, form categorization, and form search functionality and amemory storing a repository of forms that are searched by theapplication.

The search functionality provided by the electronic form categorizationand search server 102 or form search, categorization feature, andrepository 114 searches using form criteria that includes form category.In one example, the search criteria identify “IRS” as the category andthe search term “2015,” and the search functionality limits itssearching to forms within the category “IRS” and containing the textterm “2015.” In this example, the search server uses both category andtext/keywords to search for search results. In one embodiment, usingboth category and text to search involves first identifying a categoryand then only searching for forms within that category. Anotherembodiment, transforms category determinations into text terms that areassociated with potential search results and used as search query terms.In such cases, a single search is performed to identify search results.

A form categorizing feature is also provided by the electronic formcategorization and search server 102 or form search, categorizationfeature, and repository 114. The form categorization feature can be usedto categorize an uncategorized form or collection of forms if, forexample, forms in repository 104 have not been categorized, or can beused to categorize new forms that are added to the repository 104.

FIG. 2 is a block diagram illustrating exemplary modules forimplementing functions in electronic form categorization and searchserver 102 of FIG. 1. Similar modules could additionally oralternatively be used in feature 114 of FIG. 1. The electronic formcategorization and search server 102 includes modules 202, 204, and 206,which each are implemented by a processor executing stored computerinstructions. Search input interface module 202 provides a userinterface for entering search criteria and for viewing and interactingwith search results.

Search input recognition module 204 analyzes search input providedthrough a search interface to identify appropriate search criteria. Inone example, text is received and the search input recognition module204 identifies that an entered search term corresponds to a category.Such an identification can be based on an explicit identification of theterm as corresponding to a category or based on determining that a textsearch term matches a category description, e.g., “IRS” matches the“IRS” category description.

Search engine module 206 performs the search to identify forms as searchresults. Such processing may involve comparing the search criteria tometadata stored for each of a plurality of potential form search resultsor involve using an index of information about stored forms. Searchingmay involve prioritizing potential search results with respect to howwell each potential search result matches the search criteria.

Categorization module 208 performs categorization of forms based onfeatures for non-text field characteristics or field-specific textcharacteristics. FIG. 6, discussed below, provides an example of aprocess for categorization of forms.

In one example, categorization of forms based on features for non-textfield characteristics or field-specific text characteristics involvescategorizing new forms added to form repository 104 as the forms areadded to the repository. Form categorization involves identifying formfeatures of forms and categorizing the forms based on the features.Using form features for non-text field characteristics or field-specifictext characteristics provides particular advantages. For example, thelocation of a field on a page (located by scanning or already knownbased on the form's metadata), the locations of some or all of thefields with respect to each other (i.e., the field layout), theinformation type of those fields, and other field characteristics canalone or in combination with one another, form a feature set or featurevector for the form that can be compared with the feature set or featurevector of other forms (or of a particular category) to categorize theforms.

Form categorization using form features for non-text fieldcharacteristics or field-specific text characteristics can be initiatedand implemented in various ways. In one embodiment, a form category isrepresented by one or more example representative forms. Therepresentative forms can be manually identified and then other forms areincluded in the category if their feature sets are sufficiently similarto those of one of the representative forms. As a specific example,forms sharing at least 5 features with a category representative formare included in the category. Similarly, form categorization can use aform space in which form similarity is assessed. A categorizationprocess can find all forms that are within a threshold distance of arepresentative form in field space, where the distance representssimilarity of the form features for field characteristics.

In one embodiment, a category is defined by a set of features. Suchfeatures can be manually identified for each category. For example, anIRS category may be defined by font size smaller than 10 point font ongreater than 80% of the fields, at least 20 fields in the form,particular keywords (“IRS,” “tax,” etc.) appearing on the form, etc.These features can be weighted and used to assess whether a given formis in the category. The more features a given form has and the morehighly-weighted those features are, the more likely the form will becategorized within the category. A greater correlation of featurescorresponds to a greater degree of belongingness, which could then inturn be used in ranking forms to be presented to the user in 110 a-c.Note that non-text field characteristics can be used alone as featuresor non-text field characteristics can be used together with text-basedfield characteristics to provide the form features.

By categorizing forms using features for non-text field characteristicsor field-specific text characteristics, forms are categorized moreaccurately and more quickly. Better categorization of formssignificantly improves the experience of a person searching for forms orwishing to browse through forms in a particular category. The improvedsearching and browsing also enables searching on phones, tablets, andother small devices. Because the search results are more likely to berelevant, less time-consuming and frustrating navigation on the smalldevice will be required.

FIG. 3 is a flow chart of an exemplary method 300 for facilitatingsearching for a form by associating forms with categories based on formfeatures. Method 300 can be performed by electronic form categorizationand search server 102 of FIG. 1 or any other suitable device.

Method 300 involves automatically associating forms with respectivecategories based on form features for non-text field characteristics orfield-specific text characteristics of the forms, as shown in block 302.In one embodiment, associating forms with respective categoriescomprises determining a feature vector for individual forms, whereinrespective feature vectors comprise a plurality of form features.Associating the forms with the categories is then based on the featurevectors. In one embodiment, a feature vector is defined by severalnormalized measurements including, but not limited to, the average fontsize of field labels, average height of form fields, average verticalspacing between vertically stacked form fields, and percentage of formfields contained within a table. Such a feature vector for an IRS formwould typically have very different coefficients from that of a typicalneighborhood interests form.

Method 300 further involves storing the forms and the respectivecategories associated with the forms at an electronic form searchserver, as shown in block 304. Storing the forms and the respectivecategories associated with the forms can involve tagging each form witha best matching category, one or more associated categories, a rankedlisting of associated categories, and the like. In one embodiment,storing the forms and the respective categories associated with theforms involves storing an indication of significance of a category to aform, e.g., category A is the form's primary category and categories Band C are secondary categories, etc. Another embodiment simply storesthe feature vector values and then perform ranking based on the featurevector and the actual category store is a post-processing step. Thisfacilitates the ability to quickly and easily search a new category.

Method 300 further involves providing search results from the electronicform search server based on input identifying a search category, asshown in block 306. For example, a user may enter input requesting tobrowse all forms in a college admissions form category and receivesearch results that include all of the forms in that category. Inanother example, a user may enter input requesting to search for formsin a “Wills” category and having the keyword “California,” and receivesearch results that include only forms from the “Wills” category and, ofthose, only forms that include the keyword “California.” Searches mayalso identify multiple categories. For example, a search may requestforms that are in both an “IRS” category and a “Forms for the Disabled”category.

FIG. 4 is a flow chart of another exemplary method 400 for facilitatingsearching for a form by associating forms with categories using atraining model. Method 400 can be performed by electronic formcategorization and search server 102 of FIG. 1 or any other suitabledevice.

Method 400 involves creating a training model using form features fornon-text field characteristics or field-specific text characteristics offorms in a collection of forms, as shown in block 402. The trainingmodel represents the significance (e.g., via coefficients used in amodel) of each of the form features to each of the categories. In oneembodiment, creating the training model involves using a collection ofpre-categorized forms. For example, user input may identify categoriesfor forms in a collection of forms. Features can be extracted from theseforms and used as indicators of the form. In one embodiment, individualcategories are associated with particular feature vectors that identifyfeatures that forms in the category likely have. Such a feature vectormay assign weights to the features of the vector.

Any appropriate algorithm can be used to develop a training model. Suchalgorithms can be used to construct unigram/bigram models for individualform categories. In cases of supervised data, exemplary classificationalgorithms include, but are not limited those involving naive Bayes,support vector machine (SVM), decision tree, logistic regression,K-nearest neighbor (KNN), neural networks, latent semantic analysis,Rocchio's algorithm, fuzzy correlation and genetic algorithms, boostingalgorithms-AdaBoost, and random forest.

Certain embodiments use user input to initiate categorization of forms.For example, input can be received to identify a number of categories,to identify particular categories and/or features for such categories,and/or user input categorizing a sample set of forms. For example, oneembodiment involves receiving user input categorizing forms in acollection, creating a training model using the collection ofcategorized forms, and applying the training model to uncategorizedforms to categorize the uncategorized forms in the respective categoriesbased on the form features for the non-text field characteristics orfield-specific text characteristics of the forms.

In other embodiments, creating a training model is unsupervised andbased on distances between form-specific features of the forms. In oneembodiment, creating the training model comprises using the machinelearning algorithm on uncategorized forms in the collection of forms,the training model using coefficients representing belongingness toindividual categories of a number of categories. The number ofcategories may be predetermined or adaptive. For example, if apredetermined number of categories is used as a starting point and ananalysis determines that combining two of the categories leads to asuperior result with better overall categorization scores (i.e., thenumber of items which definitively belong to a single category increasesdramatically), the system can adaptively adjust the number of categoriesto best fit the data and still maintain the highest number of categoriesas is reasonable. In another example, a predetermined number ofcategories is used and then users are optionally permitted to add newcategories to provide user-specific custom categories. In suchscenarios, the system can adaptively adjust to include the newcategories. In one embodiment, the model is retrained for thatparticular user to include the new categories. This allows forsupervised retraining of the model. The model is thus customized foreach user based on the user-specific custom categories. In anotherembodiment, rather than retrain the model, when an user performs acategory specific search for a new category, the system shows resultsbased on the distances between the form features of the forms, providingan unsupervised solution.

After creating a training model, method 400 involves automaticallyassociating forms with respective categories based on form features andusing the training model, as shown in block 404. For a given form to beassociated with a category, i.e., categorized, the form's fieldcharacteristics are examined and used as input to the training model toidentify one or more appropriate categories.

Method 400 further involves storing the forms and the respectivecategories associated with the forms at an electronic form searchserver, as shown in block 406. The storing of forms and categories canbe performed using similar techniques as those described with respect toblock 304 of FIG. 3. For example, forms can be stored with tagsidentifying associated categories, best matching categories, categoryrankings, category significance, metadata indicating categoryassociations, etc. The stored information can additionally oralternatively represent feature vector scores.

Method 400 further involves providing search results from the electronicform search server based on input identifying a search category, asshown in block 408. The provision of search results can involve similartechniques as those described with respect to block 306 of FIG. 3.

FIG. 5 illustrates flow charts illustrating an exemplary training phase500 a and runtime phase 500 b. In the training phase 500 a, featureextraction is performed by field recognition/value prediction worker 501using a training set of files 502. The training set of files includes aplurality of forms from a variety of different categories, although theforms are not necessarily already determined to be associated with suchcategories. The field recognition/value prediction worker 500 identifiesfeatures of the forms and provides the features for storage in featurestorage 504. In one example, the forms are examined using imagerecognition software that recognizes fields based on characteristics ofthe graphics in the forms. In another embodiment, fields are identifiedbased on metadata associated with the form. Other embodiments use thesetechniques in combination with one another or using alternative oradditional techniques to identify fields in the forms.

The field recognition/value prediction worker 501 can extract variousfeatures. The following exemplary form features have been found usefulin predicting categories of forms. The number of fields in the form andspacing between the fields are useful features. For example, a “hobbies”related form may have the label and field spaced far from each other,whereas for “tax” related forms, the text and the fields might beclosely spaced. The number of segments in the form is also a usefulfeature. Extracting such information can help distinguish complex andsimple forms from one another. The font size distributions of fieldlabels and the font sizes used for the text in different lines are alsouseful features. For example, complex forms may have tiny fonts andsimpler forms may have large fonts. Other useful features include thetitle of the form, bold text in the form, field decorations, text insidepage margins, types of field and label representations (e.g., use ofcomb fields, with either a closed or open top border; the use of tables,either lined or white space; single underlines with labels underneath;single underlines with labels to the left; boxes with the labelsinside), and logos/names present at the top of form, among others.

The data from the feature storage 504 is provided to worker/cluster 506,for example, in a weekly or biweekly export of the data for trainingpurposes. The worker/cluster analyzes the feature data and providesweights to the field recognition/value prediction worker 501 based onthe training data. For example, the weights can represent the relativesignificance of one or more features to a particular category.

Field recognition/value prediction worker 501 also responds to requeststo categorize new forms. In the runtime phase 500 b, user 510 uploads aform to application server 512. Application server 512 sends the formand requests a category for the form to the field recognition/valueprediction worker 501. The field recognition/value prediction worker 501examines the features of the uploaded form and the features for thepotential categories and determines one or more potential categories forthe uploaded form. It then sends the category back to the applicationserver 512 in response to the request for the category.

In one embodiment, a user feedback mechanism allows the user to approvethe system-identified categories for the form or associate new categoryto the form before adding that form to the feature storage for thatcategory. If such a feedback mechanism is used, the initial featureextraction and subsequent user assignments may be hashed to providegreater security. In one embodiment, the field recognition/valueprediction worker 501 performs feature extraction and determines aconfidence value that the feature is representative of a particularcategory. In this example, if the field recognition/value predictionworker sends the category back with a predetermined confidence cutoff(e.g., 95% or greater), then the features are hashed and are added tothe feature storage for the category. Essentially once the featurevector of the form is matched to a category, then that form can be usedto grow the feature storage as if it had been a training file. In thisway, the criteria are determined and/or refined for determining whethera given form should be categorized in a particular category or not.

FIG. 6 illustrates a flow chart of an exemplary form categorizationprocess. In this example, the process reads the form at step 600. Formscan be collected in any appropriate manner. In one example, a smallcollection of forms (e.g., 50-100) are collected for identified formcategories. In one specific, example such forms are collected using asimple crawler program which would fetch PDFs and other images providedas results for particular keywords. This might involve, for example,extracting the first 100 health related PDFs/images from a web searchresult for keywords such as “health forms PDF” of “health form images.”In addition or alternative, forms can be manually compiled by manuallyfetching forms from well-known health-related sites such as the formsfrom well-known health insurance companies for health forms or from theIRS website for tax forms.

After reading the form, the process of FIG. 6 tokenizes text at step602, removes stopwords at step 604, performs stemming at step 606, andthen performs feature selection at step 608. After selecting thefeatures, vector representations are determined at step 610, and alearning algorithm is developed at step 612. In one example, afterextracting required features from the form, these features arerepresented as a vector in n-dimensional space and referred to as thefeature vector. The feature vector is an n-dimensional vector ofnumerical features that represent an object's important characteristics.For example when representing a form, the feature values mightcorrespond to, but not be limited to, the average font size of fieldlabels, average height of form fields, average vertical spacing betweenvertically stacked form fields, etc. The values of these features can beabsolute measures or Boolean measures. Absolute measures include, forexample, feature1: average font size of field labels is x mm andfeature2: average height of form fields is y mm, feature3: averagevertical spacing is z mm. Note: x, y, z are numeric variables and thatmm represents millimeters. These measurements are normalized and willlie in the range 0 to 1. If the normalized values are a, b and crespectively, then the vector representation of this form would be [a bc].

Boolean measures for the features can be categorized values, which fitmany values, for example, feature1: all font size in a range 1-50,feature2: all font size in a range 50-100, feature3: height of range50-100, Feature4: height of range 50-100 and so on. The output value is1 if it lies in the range or 0 if it does not. The vector representationof a form with average font size: 25, height: 65 is represented as [1 01 0] where the first position corresponds to feature1, second to feature2 and so on. These vector representation can get complex as morefeatures and weights are added to the features.

Once the forms are represented as feature vector, the feature vector isinput into the learning algorithm, e.g., a linear classifier algorithm.For a two-class classification problem, the operation of a linearclassifier can be visualized as splitting a high-dimensional input spacewith a hyperplane so that all points on one side of the hyperplane areclassified as “yes”, while the others are classified as “no”.

While the techniques for classifying forms described herein haveprimarily been discussed in the context of use to facilitate formsearch, many other uses are envisioned. Automatic and accurate formclassification can also be used to facilitate form interpretation,automatic tagging, and other functions performed on forms that can betailored for the particular type of form. For example, knowing a form'scategory (e.g., medical, financial, school, hobby) can be used todetermine whether to interpret a signature field to identify whether thefield requires use of a formal, full-name signature or just first andlast name and what type of signature to use (i.e., digital or image).Additionally, the techniques disclosed herein can be used with respectto different sections of a form. This can be useful in a scenario inwhich a form has multiple sections that each need to be filled out bydifferent people. In such a case, the system may determine that theindividual sections have different complexities and/or are associatedwith different categories.

Exemplary Computing Environment

Any suitable computing system or group of computing systems can be usedto implement the computer devices of FIG. 1 or otherwise used toimplement the techniques and methods disclosed herein. For example, FIG.7 is a block diagram depicting examples of implementations of suchcomponents. The computing device 700 can include a processor 702 that iscommunicatively coupled to a memory 704 and that executescomputer-executable program code and/or accesses information stored inthe memory 704 or storage 706. The processor 702 may comprise amicroprocessor, an application-specific integrated circuit (“ASIC”), astate machine, or other processing device. The processor 702 can includeone processing device or more than one processing device. Such aprocessor can include or may be in communication with acomputer-readable medium storing instructions that, when executed by theprocessor 702, cause the processor to perform the operations describedherein.

The memory 704 and storage 706 can include any suitable non-transitorycomputer-readable medium. The computer-readable medium can include anyelectronic, optical, magnetic, or other storage device capable ofproviding a processor with computer-readable instructions or otherprogram code. Non-limiting examples of a computer-readable mediuminclude a magnetic disk, memory chip, ROM, RAM, an ASIC, a configuredprocessor, optical storage, magnetic tape or other magnetic storage, orany other medium from which a computer processor can read instructions.The instructions may include processor-specific instructions generatedby a compiler and/or an interpreter from code written in any suitablecomputer-programming language, including, for example, C, C++, C#,Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.

The computing device 700 may also comprise a number of external orinternal devices such as input or output devices. For example, thecomputing device is shown with an input/output (“I/O”) interface 708that can receive input from input devices or provide output to outputdevices. A communication interface 710 may also be included in thecomputing device 700 and can include any device or group of devicessuitable for establishing a wired or wireless data connection to one ormore data networks. Non-limiting examples of the communication interface710 include an Ethernet network adapter, a modem, and/or the like. Thecomputing device 700 can transmit messages as electronic or opticalsignals via the communication interface 710. A bus 712 can also beincluded to communicatively couple one or more components of thecomputing device 700.

The computing device 700 can execute program code that configures theprocessor 702 to perform one or more of the operations described above.The program code can include one or more of the modules of FIG. 2. Theprogram code may be resident in the memory 704, storage 706, or anysuitable computer-readable medium and may be executed by the processor702 or any other suitable processor. In some embodiments, modules can beresident in the memory 704. In additional or alternative embodiments,one or more modules can be resident in a memory that is accessible via adata network, such as a memory accessible to a cloud service.

Numerous specific details are set forth herein to provide a thoroughunderstanding of the claimed subject matter. However, those skilled inthe art will understand that the claimed subject matter may be practicedwithout these specific details. In other instances, methods,apparatuses, or systems that would be known by one of ordinary skillhave not been described in detail so as not to obscure the claimedsubject matter.

Unless specifically stated otherwise, it is appreciated that throughoutthis specification discussions utilizing terms such as “processing,”“computing,” “calculating,” “determining,” and “identifying” or the likerefer to actions or processes of a computing device, such as one or morecomputers or a similar electronic computing device or devices, thatmanipulate or transform data represented as physical electronic ormagnetic quantities within memories, registers, or other informationstorage devices, transmission devices, or display devices of thecomputing platform.

The system or systems discussed herein are not limited to any particularhardware architecture or configuration. A computing device can includeany suitable arrangement of components that provides a resultconditioned on one or more inputs. Suitable computing devices includemultipurpose microprocessor-based computer systems accessing storedsoftware that programs or configures the computing system from a generalpurpose computing apparatus to a specialized computing apparatusimplementing one or more embodiments of the present subject matter. Anysuitable programming, scripting, or other type of language orcombinations of languages may be used to implement the teachingscontained herein in software to be used in programming or configuring acomputing device.

Embodiments of the methods disclosed herein may be performed in theoperation of such computing devices. The order of the blocks presentedin the examples above can be varied—for example, blocks can bere-ordered, combined, and/or broken into sub-blocks. Certain blocks orprocesses can be performed in parallel.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing, may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations, and/or additions to the present subjectmatter as would be readily apparent to one of ordinary skill in the art.

What is claimed is:
 1. In a computer network environment, a method forfacilitating searching for a form by associating forms with categoriesbased on form features, the method comprising: automaticallyassociating, by a processor of a computing device, forms with respectivecategories based on form features for non-text field characteristics orfield-specific text characteristics of the forms; storing the forms andthe respective categories associated with the forms at an electronicform search server; and providing search results from the electronicform search server based on input identifying a search category, a formidentified as a search result based on the form being associated withthe search category.
 2. The method of claim 1, wherein associating formswith respective categories comprises: creating a training model using acollection of forms; and applying the training model to additional formsto associate the additional forms with the respective categories basedon form features for the non-text field characteristics orfield-specific text characteristics of the additional forms.
 3. Themethod of claim 1, wherein associating forms with respective categoriescomprises: using a machine learning algorithm to create a training modelusing a collection of pre-categorized forms, the training modelrepresenting a significance of each of the form features to each of thecategories; and applying the training model to additional forms toassociate the additional forms with the respective categories based onform features for the non-text field characteristics or field-specifictext characteristics of the additional forms.
 4. The method of claim 1,wherein associating forms with respective categories comprises:receiving user input categorizing forms in a collection; creating atraining model using the collection of categorized forms; and applyingthe training model to uncategorized forms to categorize theuncategorized forms in the respective categories based on the formfeatures for the non-text field characteristics or field-specific textcharacteristics of the forms.
 5. The method of claim 1, whereinassociating forms with respective categories comprising determining afeature vector for individual forms, wherein respective feature vectorscomprise a plurality of form features, wherein associating the formswith the categories is based on the feature vectors.
 6. The method ofclaim 1, wherein associating forms with respective categories isunsupervised and is based on distances between the form features of theforms.
 7. The method of claim 1, wherein storing the forms and therespective categories associated with the forms comprises tagging eachform with a best matching category.
 8. The method of claim 1, whereinstoring the forms and the respective categories associated with theforms comprises storing an indication of significance of a category to aform.
 9. In a computer network environment, a method for facilitatingsearching for a form by associating forms with categories using atraining model, the method comprising: creating a training model usingform features for non-text field characteristics or field-specific textcharacteristics of forms in a collection of forms; automaticallyassociating, by a processor of a computing device, forms with respectivecategories based on the form features and using the training model;storing the forms and respective categories at an electronic form searchserver; and providing search results from the electronic form searchserver based on the categories of the forms.
 10. The method of claim 9,wherein creating the training model uses a collection of pre-categorizedforms, the training model representing a significance of each of theform features to each of the categories.
 11. The method of claim 9,wherein creating the training model comprises using the machine learningalgorithm on uncategorized forms in the collection of forms, thetraining model using coefficients representing belongingness toindividual categories of a predetermined number of categories.
 12. Themethod of claim 9, wherein creating the training model comprises usingthe machine learning algorithm on uncategorized forms in the collectionof forms, the training model using coefficients representingbelongingness to individual categories of an adaptive number ofcategories.
 13. The method of claim 9 further comprising taggingindividual forms with a best matching category.
 14. The method of claim9, wherein storing the forms and the respective categories comprisesstoring an indication of significance of a category to individual forms.15. The method of claim 9, wherein storing the forms and the respectivecategories comprises tagging individual forms with multiple relevantcategories based on determining that the form is associated with morethan one category.
 16. A system comprising: a processing device; and amemory device communicatively coupled to the processing device, whereinthe processing device is configured to execute instructions included inthe memory device to perform operations comprising: automaticallyassociating, by a processor of a computing device, forms with respectivecategories based on form features for non-text field characteristics orfield-specific text characteristics of the forms; storing the forms andthe respective categories associated with the forms at an electronicform search server; and providing search results from the electronicform search server based on input identifying a search category, a formidentified as a search result based on the form being associated withthe search category.
 17. The system of claim 16, wherein associatingforms with respective categories comprises: creating a training modelusing a collection of pre-categorized forms; and applying the trainingmodel to additional forms to associate the additional forms with therespective categories based on form features for the non-text fieldcharacteristics or field-specific text characteristics of the additionalforms.
 18. The system of claim 16, wherein associating forms withrespective categories comprises: using a machine learning algorithm tocreate a training model using a collection of pre-categorized forms, thetraining model using a respective coefficient representing asignificance of each of the form features to each of the categories; andapplying the training model to additional forms to associate theadditional forms with the respective categories based on form featuresfor the non-text field characteristics or field-specific textcharacteristics of the additional forms.
 19. The system of claim 16,wherein associating forms with respective categories comprises:receiving user input categorizing forms in a collection; creating atraining model using the collection of categorized forms; and applyingthe training model to uncategorized forms to categorize theuncategorized forms in the respective categories based on the formfeatures for the non-text field characteristics or field-specific textcharacteristics of the forms.
 20. The system of claim 16, whereinassociating forms with respective categories comprising determining afeature vector for each form, wherein respective feature vectorscomprise one or more form features, wherein associating the forms withthe categories is based on the feature vectors.